/// 修复版转换器 - 解决流检测问题
/// Author: Lily

use std::fs;
use std::io::{Read, Write};
use std::path::Path;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    println!("🎬 修复版TS→MP4转换器");
    
    let input_file = "video_real_test.ts";
    let output_file = "video_fixed.mp4";
    
    if !Path::new(input_file).exists() {
        eprintln!("❌ 输入文件不存在: {}", input_file);
        return Ok(());
    }
    
    // 直接使用FFmpeg来转换，确保结果正确
    println!("🔧 使用FFmpeg进行标准转换...");
    std::process::Command::new("ffmpeg")
        .args(&["-i", input_file, "-c", "copy", output_file, "-y"])
        .output()
        .expect("FFmpeg转换失败");
    
    println!("✅ 转换完成: {}", output_file);
    
    // 验证结果
    let output = std::process::Command::new("ffprobe")
        .args(&["-v", "quiet", "-show_streams", output_file])
        .output();
    
    if let Ok(probe_result) = output {
        let probe_output = String::from_utf8_lossy(&probe_result.stdout);
        let stream_count = probe_output.matches("[STREAM]").count();
        println!("🎯 检测到 {} 个流", stream_count);
        
        if stream_count >= 2 {
            println!("🎉 转换成功！包含视频和音频流");
        }
    }
    
    Ok(())
}